package DataBase

import (
	"fmt"
	configs "work1/Config"

	"gorm.io/driver/mysql"
	"gorm.io/gorm"
	"gorm.io/gorm/logger"
)

var DB *gorm.DB

func init() {

	dsn := fmt.Sprintf("%v:%v@tcp(%v:%v)/%v?charset=utf8mb4&parseTime=True&loc=Local",
		configs.Conf.Config.Mysql.User,
		configs.Conf.Config.Mysql.Password,
		configs.Conf.Config.Mysql.Host,
		configs.Conf.Config.Mysql.Port,
		configs.Conf.Config.Mysql.Dbname)
	var err error
	gormConfig := &gorm.Config{}
	if configs.Conf.Config.Mysql.Debug {
		gormConfig.Logger = logger.Default.LogMode(logger.Info) //配置日志级别，打印出所有的sql
	}

	DB, err = gorm.Open(mysql.Open(dsn), gormConfig)
	if err != nil {
		panic("数据库连接失败 %v" + err.Error())
	}

	setDb, _ := DB.DB()
	// SetMaxIdleConns 用于设置连接池中空闲连接的最大数量。
	setDb.SetMaxIdleConns(10)

	// SetMaxOpenConns 设置打开数据库连接的最大数量。
	setDb.SetMaxOpenConns(100)
}
